package com.lmxdawn.api.dnf.service;

import com.lmxdawn.api.dnf.dto.request.LoginReq;
import com.lmxdawn.api.dnf.dto.response.LoginResp;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * web端用户登录接口
 */
public interface IWebLoginService {
    
    /**
     * 账号密码登录
     *
     * @param loginReq
     * @return
     */
    LoginResp login(LoginReq loginReq);
    
    /**
     * 发送短信验证码
     *
     * @param content
     */
    void sendPhoneCode(LoginReq content);
    
    /**
     * 短信验证码登录
     *
     * @param content
     * @return
     */
    LoginResp phoneCodeLogin(LoginReq content);


    /**
     * 获取菜单权限从缓存
     *
     * 如果用户权限变更需要刷新缓存，调用refreshPermissionCache方法
     *
     * @param userId 用户id
     */
    List<String> getPermissionFromCache(String userId);

    /**
     * 刷新权限缓存
     *
     * @param userId 用户id
     */
    void refreshPermissionCache(String userId);

    /**
     * 用户退出
     *
     * @param request
     * @param response
     */
    void logOut(HttpServletRequest request, HttpServletResponse response);
}
